//
//  NSObject+Extension.swift
//  GermanyMedical
//
//  Created by 刘培壮 on 2016/10/10.
//  Copyright © 2016年 上海实奥信息科技有限公司. All rights reserved.
//

import UIKit

extension NSObject {
    
    func swiftClassFromString(_ className: String) -> NSObject {
        // get the project name
        // 0.动态获取命名空间
        let namespace = Bundle.main.infoDictionary!["CFBundleExecutable"] as! String
        
        // 1.拼接命名空间并生成Class
        // 在Swift中, 如果想通过一个字符串创建一个类, 那么该类名必须包含命名空间名称
        let cls:AnyClass = NSClassFromString(namespace + "." + className)!
        
        // 2.告诉编译器真实类型是UIViewController
        // 在Swift中如果向通过一个AnyClass来创建一个对象, 必须先明确这个类的类型
        let vcCls = cls as! UIViewController.Type
        
        // 3.实例化控制器
        let childController = vcCls.init()
        return childController
//        if  let appName: String = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleName") as! String? {
//            //拼接控制器名
//            let classStringName = "\(appName).\(className)"
//            //将控制名转换为类
//            let classType = NSClassFromString(classStringName) as? NSObject.Type
//            if let type = classType {
//                let newVC = type.init()
//                return newVC
//            }
//        }
//        return nil;
    }
    
}
